Memory devices are typically provided as internal, semiconductor, integrated circuits in computers or other electronic devices. There are many different types of memory including volatile and non-volatile memory. Volatile memory can require power to maintain its data (e.g., information) and includes random-access memory (RAM), dynamic random access memory (DRAM), and synchronous dynamic random access memory (SDRAM), among others. Non-volatile memory can provide persistent data by retaining stored data when not powered and can include NAND flash memory, NOR flash memory, static random access memory (SRAM), resistance variable memory, such as phase change random access memory (PCRAM) and resistive random access memory (RRAM), and magnetic random access memory (MRAM), such as spin torque transfer random access memory (STT RAM), among others.
Flash memory devices, including floating gate flash devices and charge trap flash (CTF) devices can comprise memory cells having a storage node (e.g., a floating gate or a charge trapping structure) used to store charge and may be utilized as non-volatile memory for a wide range of electronic applications. Memory cells can be arranged in an array architecture and can be programmed to a desired state. For instance, electric charge can be placed on or removed from the storage node (e.g., floating gate) of a memory cell to place the cell into one of a number of program states. As an example, a single level cell (SLC) can be programmed to one of two program states which can represent a stored data unit (e.g., binary units 1 or 0). Various flash memory cells can be programmed to more than two program states, which can represent multiple stored data units (e.g., binary units 1111, 0111, 0011, 1011, 1001, 0001, 0101, 1101, 1100, 0100, 0000, 1000, 1010, 0010, 0110, or 1110). Such memory cells may be referred to as multi state cells, multiunit cells, or multilevel cells (MLCs). MLCs can allow the manufacture of higher density memories without increasing the number of memory cells since each cell can represent more than one digit (e.g., more than one bit).
Some MLCs can be programmed to a quantity (L) of program states that does not correspond to an integer number of stored data units. That is, the number of data units capable of being stored in a cell (e.g., Log2(L)) can correspond to a fractional number of stored data units (e.g., a fractional number of bits).